package com.example.mapperapi.annotation;


import com.example.mapperapi.mapperMethod.DefaultMapperMethod;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.util.function.Function;

/**
 * 单选列表映射器
 * 注解标注了是否进行单选列表映射
 * 默认将单选列表传来的json字符串值转map,获取name值
 * method为自定义方法,若定义则传递一个实现Function接口的实现类字节码,自定义方法优先级最大
 * value为映射的对应字段名
 *
 * @author 徐鑫
 * @date 2023/03/25
 */
@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface MapperSingleList {
    String value();

    Class<? extends Function<Object, Object>> method() default DefaultMapperMethod.class;

    String mapValue() default "name";
}
